package net.lzzy.practices.constants;

/**
 * @author 渊何
 */
public final class ApiConstants {
    private ApiConstants () {}

    /**
     * produces
     */
    public static final String API_PRODUCES_JSON = "application/json";

    /**
     * 以下为路由配置
     */
    public static final String ROUTE_AUTH_ROOT = "api/v1";
    public static final String ROUTE_AUTH_LOGIN = "/login";
    public static final String ROUTE_AUTH_LOGOUT = "/logout";
    public static final String ROUTE_AUTH_EXISTS = "/exists/{user}";
    public static final String ROUTE_AUTH_REGISTER = "/register";
    public static final String ROUTE_AUTH_UPLOAD = "/upload";

    public static final String ROUTE_USER_ROOT = "api/v1/admin";
    public static final String ROUTE_USER_ALL = "/";
    public static final String ROUTE_USER_PAGE = "/page";
    public static final String ROUTE_USER_SEARCH = "/search/{kw}";
    public static final String ROUTE_USER_APPLYING = "/applying";
    public static final String ROUTE_USER_APPROVE = "/approve";
    public static final String ROUTE_USER_DECLINE = "/decline";
    public static final String ROUTE_USER_BAN = "/ban";

    public static final String ROUTE_COURSE_ROOT = "api/v1/course";
    public static final String ROUTE_COURSE_ALL = "/";
    public static final String ROUTE_COURSE_OPEN = "/open";
    public static final String ROUTE_COURSE_PAGE = "/page";
    public static final String ROUTE_COURSE_OPEN_PAGE = "/open/page";
    public static final String ROUTE_COURSE_TEACHER = "/teacher";
    public static final String ROUTE_COURSE_STUDENT = "/student";
    public static final String ROUTE_COURSE_ADD = "/add";
    public static final String ROUTE_COURSE_UPDATE = "/update/{id}";
    public static final String ROUTE_COURSE_OPEN_CLOSE = "/oc";
    public static final String ROUTE_COURSE_REMOVE = "/remove";

    public static final String ROUTE_APPLICANT_ROOT = "api/v1/applicant";
    public static final String ROUTE_APPLICANT_APPLY = "/apply";
    public static final String ROUTE_APPLICANT_ENROLLED = "/enrolled";
    public static final String ROUTE_APPLICANT_APPLYING = "/applying";
    public static final String ROUTE_APPLICANT_DECLINED = "/declined";
    public static final String ROUTE_APPLICANT_APPROVE = "/approve";
    public static final String ROUTE_APPLICANT_DECLINE = "/decline";
    public static final String ROUTE_APPLICANT_TEACHER_ENROLLED = "/t_enrolled";
    public static final String ROUTE_APPLICANT_TEACHER_DECLINED = "t_declined";
    public static final String ROUTE_APPLICANT_TEACHER_APPLYING = "/t_applying";
    public static final String ROUTE_APPLICANT_REMOVE = "/remove";

    public static final String ROUTE_CHAPTER_ROOT = "api/v1/chapter";
    public static final String ROUTE_CHAPTER_TEACHER = "/teacher";
    public static final String ROUTE_CHAPTER_STUDENT = "/student";
    public static final String ROUTE_CHAPTER_ADD = "/add";
    public static final String ROUTE_CHAPTER_UPDATE = "/put/{id}";
    public static final String ROUTE_CHAPTER_OPEN_CLOSE = "/oc";
    public static final String ROUTE_CHAPTER_REMOVE = "/remove";

    public static final String ROUTE_QUESTION_ROOT = "api/v1/question";
    public static final String ROUTE_QUESTION_CHAPTER = "/chapter";
    public static final String ROUTE_QUESTION_ADD = "/add";
    public static final String ROUTE_QUESTION_PUT = "/put/{id}";
    public static final String ROUTE_QUESTION_OPTION_ADD = "/option/add";
    public static final String ROUTE_QUESTION_OPTION_DEL = "/option/del";
    public static final String ROUTE_QUESTION_DEL = "/del";

    public static final String KEY_TOKEN = "token";
    public static final String KEY_QUESTION_TYPE = "type";
    public static final String KEY_QUESTION_CONTENT = "content";
    public static final String KEY_QUESTION_ANALYSIS = "analysis";
    public static final String KEY_QUESTION_ORDINAL = "ordinal";
    public static final String KEY_QUESTION_CHAPTER_ID = "chapterId";
    public static final String KEY_QUESTION_OPTIONS = "options";
    public static final String KEY_OPTION_CONTENT = "content";
    public static final String KEY_OPTION_LABEL = "label";
    public static final String KEY_OPTION_ANSWER = "answer";

    public static final String ROUTE_RESULT_ROOT = "api/v1/result";
    public static final String ROUTE_RESULT_POST = "/post";
    public static final String ROUTE_RESULT_DEL = "/del";
    public static final String ROUTE_RESULT_QUESTION = "/question";
    public static final String ROUTE_RESULT_COMMITTED = "commit";
    public static final String ROUTE_RESULT_CHAPTER_DEL = "/chapter/del";
    public static final String ROUTE_RESULT_CHAPTER = "/chapter";
    public static final String KEY_RESULT_OPTION_ARRAY = "options";
    public static final String KEY_RESULT_OPTION_ID = "oids";
    public static final String KEY_RESULT_OPTION_QUESTION_ID = "qid";
}
